/**  
 * @author renbangjie renbangjie@126.com  
 * @date 2015年11月25日 上午11:54:43
 * @version V1.0  
 * <b>Copyright (c)</b> 2014医信金融信息服务（上海）有限公司-版权所有<br/>
 */
package com.yjd.comm.activity.service;

import com.yjd.comm.activity.enums.ActivityEnums.RewardType;
import com.yjd.comm.activity.model.CommonOrderModel;
import com.yjd.comm.enums.UserEnums.Channel;
import com.yjd.comm.wal.enums.ExperienceType;

/**
 * 开放给php的各种活动奖励接口
 * 
 * @author renbangjie renbangjie@126.com
 * @date 2015年11月25日 上午11:54:43
 */
public interface IActivityRewardService {

	/**
	 * 2016年会摇一摇活动
	 * 
	 * @param user_id
	 * @param order_id
	 * @param order_time
	 * @param amount
	 * @param rewardType
	 * @param chennel
	 * @param linkage_value
	 *            linkage表的value
	 * @param activity_id
	 *            活动id
	 * @param expAmount_start
	 *            体验金开始生息日期
	 * @param expAmount_end
	 *            体验金结束生息日期
	 * @param voucher_end
	 *            代金券截止日期
	 * @return
	 * @throws Exception
	 *             String
	 */
	public String annualMeetingActivity(Long user_id, Long order_id,
			Long order_time, Double amount, RewardType rewardType,
			Channel chennel, Integer linkage_value, Long activity_id,
			Long profit_start_time, Long profit_end_time,ExperienceType experienceType)
			throws Exception;

	/**
	 * 发放体验金
	 * 
	 * @date 2015年11月25日 上午11:58:54
	 * @param user_id
	 * @param order_id
	 * @param rewardAmount
	 *            void
	 * @throws Exception
	 */
	public void expAmount(CommonOrderModel commonOrderModel, Long activity_id,
			Long profit_start_time, Long profit_end_time,ExperienceType experienceType) throws Exception;

	/**
	 * 代金券
	 * 
	 * @date 2015年11月25日 下午12:02:45
	 * @param user_id
	 * @param order_id
	 * @param amount
	 *            void
	 * @throws Exception
	 */
	public void voucher(CommonOrderModel commonOrderModel, Long activity_id,
			Integer linkage_value, Long voucher_end) throws Exception;

	/**
	 * 理财金
	 * 
	 * @date 2015年11月25日 下午12:02:58
	 * @param user_id
	 * @param order_id
	 * @param amount
	 *            void
	 * @throws Exception
	 */
	public void returnAmount(CommonOrderModel commonOrderModel,
			Long activity_id, Integer linkage_value, Long voucher_end)
			throws Exception;
}
